package javaCode.chapter07.polyparameter_;

import com.sun.corba.se.spi.orbutil.threadpool.Work;

public class PolyParameter {
    public static void main(String[] args) {

        Worker nick = new Worker("Nick", 4500);
        Manager jack = new Manager("Jack", 8000.0,15000);
        PolyParameter polyParameter = new PolyParameter();

        polyParameter.showEmpAnnual(nick);
        polyParameter.testWork(nick);

        System.out.println("==============");
        polyParameter.showEmpAnnual(jack);
        polyParameter.testWork(jack);
    }

    //实现获取任何员工对象得到年工资，并在main方法中调用该方法
    public void showEmpAnnual(Employee e){
        System.out.println(e.getAnnual()); //动态绑定机制...
    }

    //添加一个testWork，如果是普通员工，则调用work方法，如果是经理，则调用manage方法
    public void testWork(Employee e){
        if (e instanceof Worker){
            ((Worker) e).work(); //向下转型操作
        }else if (e instanceof Manager) {
            ((Manager)e).manage();
        }

    }
}
